package ca.usherbrooke.domus.sipnmove2.model.phone;

import ca.usherbrooke.domus.sipnmove2.model.call.Call;

/**
 * A phone that handles call initiation
 * 
 * The role of the phone is to handle incoming calls or to initiate new calls
 */
public interface Phone {

	/**
	 * Add a new call to this phone
	 */
	public void addCall(String callId, Call call);

	/**
	 * Register a new call listener in this phone
	 */
	public void addNewCallListener(NewCallListener newCallListener);

	/**
	 * Get a call by its CallId
	 */
	public Call getCallById(String callId);

	/**
	 * Remove a call by its CallId
	 */
	public void removeCallById(String callId);

	/**
	 * Quit the phone
	 */
	public void quit();

}
